package chain;

/**
 * 责任链模式，
 * 顾名思义，责任链模式（Chain of Responsibility Pattern）为请求创建了一个接收者对象的链。这种模式给予请求的类型，对请求的发送者和接收者进行解耦。这种类型的设计模式
 * 属于行为型模式。
 * 在这种模式中，通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求，那么它会把相同的请求传给下一个接收者，依此类推。
 * 其实我们经常看见的oa系统上的审批就有点类似这种，即他的审批是一条链状的，即我们一个请求扔过去，我们不用关心谁去处理，同事处理的人也不用关心下一个处理人是谁，即我能处理就处理，
 * 不能处理就往上扔
 * 
 * 应用实例： 1、红楼梦中的"击鼓传花"。 2、JS 中的事件冒泡。 3、JAVA WEB 中 Apache Tomcat 对 Encoding 的处理，Struts2 的拦截器，jsp servlet 的 Filter。
 * @author zj
 *最后将我们责任链给连接起来，也就是按执行顺序安装起来，比如权利最小放在最前面，然后后面权利依次曾大，然后第一个处理不了就扔给下一个，下一个处理不了就继续往下扔
 */
public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Approval a=new Salver(1);
		Approval a1=new Manger(3);
		a.setNextApproval(a1);
		a.writeMessage(1, "你好");
		
	}

}
